
#ifndef _DEBUGSYSTEM_H_
#define _DEBUGSYSTEM_H_

#include "LibraryFrameworkExport.h"
#include "Game/Game.h"
#include "Game/GameTime.h"
#include "Entities/BaseEntity.h"

#include <string>
#include <vector>

namespace CasaEngine
{
    ////////////////////////////////////////////////////////////
    /// 
    ////////////////////////////////////////////////////////////
    class LIBRARY_FRAMEWORK_EXPORT DebugSystem :
		public IGameComponent
    {

	public :
		DebugSystem(Game *pGame_);
		~DebugSystem();

		void Initialize();
		void Update(const GameTime& gameTime_);

		int GetFPS() const;
		void AddObserver(BaseEntity *pEntity_);
		
	private:
		float m_fFPSTime;
		int m_iFPSCount;
		float m_fFPSLastDelta;
		int m_iLastFPSCount;

		std::vector<BaseEntity *> m_Observers;
	};

} // namespace CasaEngine


#endif // _DEBUGSYSTEM_H_
